package com.atguigu.gmall.product.service;


import com.atguigu.gmall.model.product.*;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 *  准备给Item调用的内部接口
 */
public interface ItemService {

    /**
     * 显示商品详情
     * @param skuId
     * @return
     */
   public SkuInfo getSkuInfo(Long skuId);

    /**
     * 查询商品图片集合
     * @param skuId
     * @return
     */
   public List<SkuImage> getSkuImage(Long skuId);

    /**
     * 查询商品价格
     * @param skuId
     * @return
     */
   public BigDecimal getPrice(Long skuId);

    /**
     * 根据三级分类Id 查询三级分类
     * @param category3Id
     * @return
     */
   public BaseCategoryView getCategory(Long category3Id);

    /**
     * 根据skuId spuId查询商品销售属性
     * @param skuId
     * @param spuId
     * @return
     */
    public List<SpuSaleAttr> getSpuSaleAttr(Long skuId,Long spuId);

    /**
     * 通过spuId查询商品的skuInfo值
     * @param spuId
     * @return
     */
    public Map getSkuValuesBySpu(Long spuId);

    /**
     * 查询品牌信息
     * @param id
     */
    public BaseTrademark getTrademark(Long id);

    /**
     *查询平台属性
     * @param skuId
     * @return
     */
    public List<BaseAttrInfo> getSkuAttrValue(Long skuId);

    /**
     * 扣减商品库存
     * @param detailMap
     */
    void deductSku(Map<String,String> detailMap);

    /**
     * 回滚库存
     * @param rollbackMap
     */
    void rollBackStock(Map<String, String> rollbackMap);
}
